#ifndef ARBRE_H
#define  ARBRE_H
//#include "AbstractIterator.h"

template< typename T>
class Arbre{
	 friend class AbstractIterator;
public:
	Arbre();
	~Arbre(){}
	virtual void add(T& element)=0;
	virtual void supp(T& element)=0;
	class AbstractIterator;
	virtual AbstractIterator begin()=0;
	virtual AbstractIterator end()=0;
private:
	
};

template <typename T>
class Arbre<T>::AbstractIterator{
	public:	
		AbstractIterator(Arbre< T > * a);
		~AbstractIterator(){}
		virtual AbstractIterator operator ++()=0;
		virtual T operator *()=0;
			
};
#endif
